package classes;

import java.util.ArrayList;
import java.util.List;

/**
 * A classe agencia representa uma agencia bancaria
 * com uma lista de funcionarios e uma lista de clientes.
 * 
 * @author samuel santos
 *
 */
public class Agencia {
	
	private List<Cliente> clientes;
	private List<Funcionario> funcionarios;
	private int numero;
	
	/**
	 * 
	 * @param numero
	 */
	public Agencia ( int numero ){
		this.numero = numero;
		clientes = new ArrayList<Cliente>();
		funcionarios = new ArrayList<Funcionario>();
		
	}

	/**
	 * Obter a lista de Clientes da agencia.
	 * @return	Uma lista com os clientes.
	 */
	public List<Cliente> getClientes() {
		return clientes;
	}

	/**
	 * Alterar a lista de clientes da agencia.
	 * @param clientes	Um lista de clientes.
	 */
	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}

	/**
	 * Obter a lista de funcionario da agenda.
	 * @return	Um list com objeto do tipo Funcionario.
	 */
	public List<Funcionario> getFuncionarios() {
		return funcionarios;
	}

	/**
	 * Alterar a lista de funcionarios da agencia.
	 * @param funcionarios	Um list com objetos do tipo Funcionario.
	 */
	public void setFuncionarios(List<Funcionario> funcionarios) {
		this.funcionarios = funcionarios;
	}

	/**
	 * Obter o numero dessa agencia.
	 * @return	Um int com o numero da agencia.
	 */
	public int getNumero() {
		return numero;
	}

	/**
	 * Alterar o numero da agencia.
	 * @param numero	Um int com o numero da agencia.
	 */
	public void setNumero(int numero) {
		this.numero = numero;
	}
	
	
	/**
	 * Mostrar todos os dados referente a agencia.
	 * 
	 * @return Uma string com os dados da agencia.
	 */
	public String toString(){
		String funcionarios = "";
		String clientes = "";
		
		for ( Cliente cliente : getClientes() ){
			clientes += cliente.toString() + "\n"; 
		}
		
		for ( Funcionario funcionario : getFuncionarios() ){
			funcionarios += funcionario.toString(); 
		}
		
		return "Agencia Numero: " + getNumero() + "\n" + clientes + funcionarios;
	}
	
	
}
